home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
pxbud.zip
/
PDXFLD.H
< prev
next >
Wrap
C/C++ Source or Header
|
1991-05-17
|
6KB
|
193 lines
/*┌───────────────────────────────────────────────────────────────────────┐
│ │
│ Module: PDXFLD.H │
│ Author: Rick Kligman │
│ Purpose: Class definition for Paradox fields │
│ │
│ Last Modified: 05-17-91 00:34am │
│ │
│ Copyright 1991 Rick Kligman │
│ This code may be freely used and distributed in commercial apps │
│ provided some mention of PXBuddy++ is made in the documentation. │
│ │
│ Version 1.00 │
└───────────────────────────────────────────────────────────────────────┘ */
/*
* future enhancements:
*
* member function set should check
* validity of number being set into field. That way
* when you write field to record buffer, data is OK.
*/
#ifndef RKPDXFLD_H
#define RKPDXFLD_H
#ifndef __STRING_H
#include <string.h>
#endif
#ifndef __STDLIB_H
#include <stdlib.h>
#endif
#ifndef PXENGINE_H
extern "C" {
#include <pxengine.h>
}
#endif
#ifndef RKNONVERR_H
#include "error.h"
#endif
#define CKERR if (err) return (err)
extern class pxtable;
// ╓─────────────────────────────────────────────────────────────────╖
// ║ Abstract class for Fields ║
// ╚═════════════════════════════════════════════════════════════════╝
class absfld {
protected:
FIELDHANDLE fh;
public:
absfld();
~absfld();
virtual int isa() { return (0); }
FIELDHANDLE fhret() { return ( fh ); }
virtual int get() { return (-1); }
virtual int put(int = FALSE) { return (-1); }
virtual int setinfo(pxtable&, char *) { return (-1); }
virtual int search(char *, int = SEARCHFIRST)
{ return (-1); }
virtual int search(short, int = SEARCHFIRST)
{ return (-1); }
virtual int search(double, int = SEARCHFIRST)
{ return (-1); }
virtual int search(long, int = SEARCHFIRST)
{ return (-1); }
int search_fld(TABLEHANDLE, RECORDHANDLE, int, int);
};
// ╓───────────────────────────────────────────────────────────────────╖
// ║ Field class for CHARS ║
// ╚═══════════════════════════════════════════════════════════════════╝
class CharFld : public absfld
{
pxtable* tblp; // pointer to base table class
char *data;
int size;
public:
CharFld ();
~CharFld();
int isa() { return (1); }
operator char *() { return data; }
void operator = (char *);
int get();
int put(int = FALSE);
int setinfo(pxtable&, char *);
int search(char *srchvar, int mode = SEARCHFIRST);
};
// ╓───────────────────────────────────────────────────────────────────╖
// ║ Field class for SHORTS ║
// ╚═══════════════════════════════════════════════════════════════════╝
class ShortFld : public absfld
{
pxtable* tblp; // pointer to base table class
short data;
public:
ShortFld();
~ShortFld();
int isa() { return (2); }
operator short() { return data; }
operator short *() { return &data; }
operator >(int comp) { return data > comp; }
operator <(int comp) { return data < comp; }
void operator = (short newval) { data = newval; }
int get();
int put(int = FALSE);
int setinfo(pxtable&, char *);
int search(short srchvar, int mode = 1);
};
// ╓───────────────────────────────────────────────────────────────────╖
// ║ Field class for DOUBLES ║
// ╚═══════════════════════════════════════════════════════════════════╝
class DblFld : public absfld
{
pxtable* tblp; // pointer to base table class
double data;
public:
DblFld();
~DblFld();
int isa() { return (3); }
operator double() { return data; }
operator double *() { return &data; }
operator >(double comp) { return data > comp; }
operator <(double comp) { return data < comp; }
void operator = (double newval) { data = newval; }
int get();
int put(int = FALSE);
int setinfo(pxtable&, char *);
int search(double srchvar, int mode = SEARCHFIRST);
};
// ╓───────────────────────────────────────────────────────────────────╖
// ║ Field class for DATES ║
// ╚═══════════════════════════════════════════════════════════════════╝
class DateFld : public absfld
{
pxtable* tblp; // pointer to base table class
long data;
char datastr [11];
public:
DateFld();
~DateFld();
int isa() { return (4); }
operator char *() { return datastr; }
int operator = (char *);
int get();
int put(int = FALSE);
int setinfo(pxtable&, char *);
// int search(TABLEHANDLE, int, char *srchvar, int mode = SEARCHFIRST);
int toint(int &mo, int &da, int &yr)
{ return ( PXDateDecode(data, &mo, &da, &yr) ); }
int frint(int mo, int da, int yr)
{ return ( PXDateEncode(mo, da, yr, &data) ); }
};
#endif